Extendible user profiles

ABSTRACT

Implementations described herein disclose a system for providing extendible user profiles for user groups by providing a group formation user interface to a group administrator, wherein the group formation user interface allows the group administrator to add group specific fields, creating a group table including the group specific fields, and linking the group table to the user profile tables.

BACKGROUND

Advances in computing and mobile technologies have resulted in peopleusing a large number of applications to participate in variousactivities. Many of these applications, such as social networkingapplications, texting applications, photo sharing applications, datingapplications require users to create user profiles including variousinformation about the users. Furthermore, some of these applicationsalso allow users to create groups where members of the group may shareinformation among the group members. For example, a social networkingapplication may allow a group administrator to form a group of membersthat live in a particular neighborhood.

SUMMARY

Implementations described herein disclose a system for providingextendible user profiles for user groups by providing a group formationuser interface to a group administrator, wherein the group formationuser interface allows the group administrator to add group specificfields, creating a group table including the group specific fields, andlinking the group table to the user profile tables.

This Summary is provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription. This Summary is not intended to identify key features oressential features of the claimed subject matter, nor is it intended tobe used to limit the scope of the claimed subject matter.

Other implementations are also described and recited herein.

BRIEF DESCRIPTIONS OF THE DRAWINGS

A further understanding of the nature and advantages of the presenttechnology may be realized by reference to the figures, which aredescribed in the remaining portion of the specification. In the figures,like reference numerals are used throughout several figures to refer tosimilar components.

FIG. 1 illustrates an example implementation of a system for providingextendible user profiles.

FIG. 2 provides an example visual representation of user profileprovided by the extendible user profile system disclosed herein.

FIG. 3 illustrates example operations of the system for providingextendible user profiles.

FIG. 4 illustrates alternative example operations of the system forproviding extendible user profiles.

FIG. 5 illustrates alternative example operations of the system forproviding extendible user profiles.

FIG. 6 illustrates an example system that may be useful in implementingthe described technology for providing extendible user profiles.

FIG. 7 illustrates an example mobile device that may be useful inimplementing the described technology for providing extendible userprofiles.

DETAILED DESCRIPTIONS

Users of computing devices use a large number of applications to getinformation and to interact with other users. For example, socialnetworking applications are widely used by consumers to interact withother members of such social network. Many of these applications requireusers to create user profiles including various information about theusers. For example, a photo sharing application may require users toprovide their name, email address, data of birth, city and state ofresidence, and a profile picture. Furthermore, some of theseapplications also allow users to create groups where members of thegroup may share information among the group members. A user creating agroup is referred to as the group administrator.

Common user profiles are used for different purposes, however, theycontain the same set of information about the users. However, when agroup administrator creates a group of selected members, the groupadministrator does not have the flexibility to add group specificinformation in the member profiles. For example, if a social networkingapplication requires its users to provide name, email, and birthdate forcreating a profile on the social networking application, a groupadministrator that wants to create a group of members having dogs is notable to request that each group member profile have information aboutthe name of the member's dogs, the breed of the dog, and a photograph ofthe dog.

An extendible user profile (EUP) system disclosed herein allows users toprovide extendible profiles including additional information about thegroup members in the member profile. For example, a messagingapplication may require its users to provide a name, phone number, andemail address for its users' profiles. However, when a user decides tocreate a group (and thus become the group administrator of the createdgroup) of users that share a particular characteristic, such groupadministrator may want more information about the member users of thegroup (referred to hereinafter as “group members”). For example, if auser Alice wants to make a group for the users that have cats called“cat lovers of Herzliya” so the members who live in Herzliya and wholike cats can share stories and information about cats, Alice may wanteach member of the cat lovers of Herzliya to have the name(s) of theircat(s) and the cats' pictures as part of their profile. The EUPdisclosed herein allows Alice to do so as the group administrator forthe cat lovers of Herzliya.

FIG. 1 illustrates an example implementation of an EUP system 100 forproviding extendible user profiles for such members of groups.Specifically, the EUP system 100 is show to be used by users Mina 102and Tamir 106 using their computing devices such as smartphone 104 and108. Specifically, Mina 102 and Tamir 106 may be users of a socialnetwork app 110 that they use via smartphones 104 and 108. Specifically,the social network app 110 may be installed as a client application onthe smartphones 104 and 108 and supported by a social networkapplication server 120.

In one implementation of the EUP system 100, the social networkapplication server 120 may be implemented on a cloud server with variouscomponents located on various disparate servers, but connected to eachother by a network 180, such as the Internet. As illustrated, the socialnetwork application server 120 includes a social networking application122 and a social networking datastore 126. The social networkingapplication 122 may be implemented by computer instructions stored in acomputer readable memory where the instructions are executable on acomputer processor.

The social networking application 122 also includes a user profilemanager module 124 and an EUP module 112. The user profile managermodule 124 may be configured to manage the profiles of various users ofthe social networking application 122. For example, the user profilemanager module 124 may manage the user profiles 128 stored in the socialnetworking datastore 126. Specifically, the user profiles 128 are storedin a schema with extendible records. Specifically, the user profiletable may include fields for each user as required by the socialnetworking application 122. In the example implementation, each userprofile includes at least a user identification (uID), a user name(uName), and user email (uEmail).

However, for the EUP system 100, the user profile records are extendibleto include additional information about the users. Specifically, theuser profiles 128 are extendible based on the context of member groupsthat the users are members of. For example, if a user is a member of agroup, a field identifying the name of the group may be added to theuser record.

Furthermore, the EUP module 112 may be working with local EUP modules112 a, 112 b located on client devices to enable users such as Mina 102and Tamir 106 to create member groups, extend the member profiles withadditional fields and to populate such extendible user profiles. Forexample, Tamir 106 may be interested in creating a new member groupcalled Dog Lovers for the users that love dogs. In this case, Tamir 106may select an option to create a new group and in response to it, theEUP module 112 b presents an EUP group formation user interface (UI) 140to Tamir 106.

The EUP group formation UI 140 includes an option for Tamir 106 to addthe name of the group where Tamir 106 may type in the name of the groupDog Lovers. The EUP group formation UI 140 also provides an option forTamir 106 to add fields to the user profiles of group members of DogLovers. For example, Tamir 106 can add a field for “Dog Name,” and fieldfor “Dog Breed.” Once Tamir 106 has provided all the fields for thegroup Dog Lovers, Tamir 106 may select the option to add participants tothe group Dog Lovers. For example, Tamir 106 may add Mina Goldstein fromthe contact list of the smartphone 108. Once the participants are added,Tamir 106 may select the invite option 142 to invite the participants,including Mina Goldstein, to join the Dog Lovers group.

Once Tamir 106 selects the invite option 142, the EUP module 112 b maysend a message to the social networking application 122 about thecreation of the new group, Dog Lovers, by Tamir 106. Specifically, theEUP module 112 b may also communicate to the social networkingapplication 122 the list of new fields that Tamir, “Dog Name,” and “DogBreed,” that Tamir would like to add to the profiles of Dog Lovers groupmembers. Additionally, the EUP module 112 b may also send the list ofparticipants, including Mina Goldstein, to the social networkingapplication 122.

Upon receiving the list of field names to be added to the user profiles,the user profile manager module 124 may add group name as a field to theprofile record for the user. Furthermore, the user profile managermodule 124 also includes a Dog Lovers group table 130 for the group DogLovers including fields of user identification (uID), user's dog's name(uDog), and the breed of the user's dog (uBreed). As the user profilemanager module 124 receives additional information from each participantin the group Dog Lovers, the user profile manager module 124 may addrecords for each such group member in the Dog Lovers group table 130.

In one implementation, the user profile manager module 124 is configuredto add one field to the profile record for each group that is joined bya user. Thus, for example, a profile record 128 a is shown to have afield for a first group (uGroup1), a profile record 128 b is shown tohave fields for a Dog Lovers group (uGrDL) and Car Lovers group (uGrCL),and profile record 128 c is shown to have a field for the Dog Loversgroup (uGrDL). Additionally, the social networking datastore 126includes the Dog Lovers group table 130 and a Car Lovers table 132.

Upon receiving the list of participants, such as Mina Goldstein, fromthe EUP group formation UI 140 on the smartphone 108, the EUP module 112communicates with the client EUP modules of the participants' devices.For example, the EUP module 112 sends a message to the EUP module 112 aon Mina 102's smartphone 104 indicating to Mina that she has beeninvited to join the Dog Lover's group. If Mina accepts the invitation,the EUP module 112 a presents a EUP group join UN 150 to Mina. The EUPjoin UI 150 may present Mina 102 with options to provide values for thegroup fields for the Dog Lovers group, namely dog name Betty and dogbreed Hound.

In one implementation, the EUP join UI 150 also gives Mina 102 theoption to invite other users, such as Kana, to the Dog Lovers group.However, in an alternative implementation, addition of such additionalparticipants, such as Kana, to the Dog Lovers group may have to beapproved by the group administrator Tamir 106. Once Mina 102 selects ajoin button 152 to join the group, the values Betty and Hound for thegroup fields are communicated to the EUP module 112 and to the userprofile manager module 124. The user profile manager module 124 addsthese values to the Dog Lovers group table 130.

Once the group fields for a given group member to a particular group areadded to the group table, if another group member of that group viewsthe profile of the given group member, they will be see all values ofall the fields in the profile. Thus, once Mina 102 has joined the DogLovers group and given the values of dog name and dog breed, if Tamir106 views Mina 102's profile, Tamir 106 will see Mina's name, email, dogname, and dog breed in her profile view.

Note that in the illustrated implementation, Mina 102 provided the nameof the dog and its breed while joining the Dog Lover's group. In analternative implementation, Mina 102 may join the group withoutproviding such information. In yet another implementation, the groupadministrator Tamir 106 may identify one of more of the group fields(dog name and dog breed) as mandatory for a participant to join the DogLover's group, in which case, Mina 102 is able to join the Dog Loversgroup after she provides such information. Yet alternatively, Mina mayalso be given the option to let the Dog Lovers group share the values ofthe dog name and dog breed with users of other group or users that arenot members of the Dog Lovers group.

In the implementation of the EUP system 100, the social networkingapplication 122 also allows a specific group field to override a fieldfrom the user profile. For example, the Dog Lovers group may alsoinclude a field for the user's photograph with a dog (u&dPhoto) whilethe user profile for the social networking application may include afield for user's photograph (uPhoto). In such an implementation, a userthat is also a member of the Dog Lovers group may specify that inspecific context, the value of u&dPhoto is displayed in the user'sprofile in place of the uPhoto. For example, if Mina 102 has providedher picture with Betty, she can specify that when a member of the DogLover's group views her profile, her photograph with Betty is shown inher profile.

FIG. 2 provides an example visual representation of user profile fields200 provided by the extendible user profile system disclosed herein.Specifically, the user profile fields 200 may include application userprofile fields 202 required by an application, such as a socialnetworking application. The user profile fields 200 also includes groupfields for a pet owners group 210, group fields for a dog owners group220, and group fields for a professional networking group 230.

As shown, the extendible user profile system disclosed herein allowsgroup administrators for each of the groups 210, 220, 230 specify groupfields for its members. When a user of the application joins one of thegroups 210, 220, 230, the user may provide values of the group specificfields. For example, when a user joins the dog owners group 220, theuser may provide values of the dog name, the dog breed, and the photowith dog. The user may also specify that they would like to override oneof the application user profile fields 202 when viewed by other membersof such group. Thus, a member of the dog owner's group 220 may specifythat when other members of the dog owners group 220 view the profile,the photo with dog is shown.

Yet alternatively, the user may also specify to adopt a field fromanother group for use in a selected group. Thus, if a user has alreadyjoined the pet owners group 210 and provided a photo with pet, the usermay specify that when a member of the dog owners group 220 views theprofile, the photo with pet is shown to such member. Yet alternatively,a user may provide a value of an application user profile field 202 thatis generally opaque to other users of the application but it may be usedas a group field. For example, the email address may be part of theapplication user profile fields 202 but not disclosed to other users.However, upon joining the professional networking group 220, the usermay specify that the members of the professional networking group 220should be able to see the email address from the application userprofile fields 202. In an alternative implementation, this option toadopt a field from another group may also be available to a groupadministrator. For example, the group administrator of the groups catlovers of Herzliya and of pet lovers of Herzliya may indicate that the“picture with a pet” field that he defined in each of these two groupsis the same one. This way if a user joins one of these two groups andsets his photo with his cat, later when that user joins the secondgroup, this field is already pre-populated with his picture from thefirst group and is just awaiting his confirmation.

FIG. 3 illustrates example operations 300 of the system for providingextendible user profiles. Specifically, an operation 302 receives arequest from a user of an application to create a group. For example,the operation 302 may receive a request from a user to create aparent-teacher association (PTA) group. An operation 304 presents agroup formation UI (such as the group formation UI 140) of FIG. 1. Anoperation 306 receives a list of group fields. For example, in the caseof the user (group administrator) creating the PTA group, the groupadministrator may specify the child name, child school year, and childsport as the fields for users joining the PTA group.

An operation 308 may receive group field types or list of drop downvalues that a user can select from. For example, for the PTA group, thegroup administrator may specify that the type of child school year isnumeric. Alternatively, other fields can be specified to be text, image,etc. Optionally, the PTA group administrator may limit the size of thefield to specific number of characters, or specify the field to be of aspecific type, such as a numeric field, a field that can be selectedfrom a set of values (e.g.: male, female), or a field that contains aspecific type of file (jpg, pdf), etc. Alternatively, the PTA groupadministrator may provide a list of sports that a user can select fromwhen populating the child sport. An operation 310 receives group fieldconditions. For example, the PTA group administrator may specify thatthe child school year is no less than 5 and no greater than 12. Anoperation 312 receives a list of participants that the groupadministrator would like to invite to join the group. An operation 314saves various information received at operations 306 to 314 andcommunicates with a user profile manager module (such as the userprofile manager module 124 of FIG. 1).

FIG. 4 illustrates alternative example operations 400 of the system forproviding extendible user profiles. An operation 402 receives the groupinformation from the group administrator including the list of groupfields, various characteristics of the group fields, and the list ofparticipants invited to join the group. For example, for the groupadministrator creating the PTA group, the operation 402 receives thename of the PTA group, the list of fields child name, child school year,and child sport and their types, restrictions, etc., and the list ofusers invited by the PTA group administrator to join the PTA group.

An operation 404 creates a PTA group table for the PTA group includingthe PTA group fields child name, child school year, and child sport.Each record of the PTA group table also includes a user ID thatidentifies the group member. An operation 406 sends invites to theparticipants provided by the PTA group administrator. For example, suchan invite may be a text message on a mobile device, an email, a messagewithin the application, etc. In response to the invite, the user mayelect to join the group an operation 408 determines if the invitedparticipant has accepted the invite.

If the invited participant has accepted the invite, an operation 410presents the EUP group join UI (such as the EUP group join UI 150 ofFIG. 1). The invited participant may provide various information such asvalues of the group fields using the EUP group join UI. An operation 412determines if the participant has joined the group. If the invitedparticipant has joined the group, an operation 414 creates a participantrecord in the group table. For example, if a participant Joe fills outthe information including values of the PTA group fields using the EUPgroup join UI and selects the join option to of the EUP group join UI,the operation 414 creates a record for Joe in the PTA group table.

An operation 416 adds a group field values with the ID of the user tothe group table. For example, in the example where Joe is joining thePTA group, the values of the PTA group fields as provided by Joe areused to create a new record for Joe in the PTA group table. An operation418 adds an extendible group ID field to the user profile record for Joeso as to link Joe's PTA group field values from the PTA group table toother field values of Joe's user profile record.

FIG. 5 illustrates alternative example operations 500 of the system fordisplaying extendible user profiles. An operation 502 receives a requestto view a profile of a group member. For example, such request mayresult from a search by another user, or simply a user clicking on anicon of the group member. An operation 504 determines if the requestfrom a group member or from another user. For example, in the case ofJoe being a member of the PTA group, if Rachel has requested to viewJoe's profile, the operation 504 determines if Rachel is part of the PTAgroup or not. Note that if Joe is part of more than one group, theoperation 504 determines if Rachel is part of any of such groups thatJoe is a member of.

If the operation 504 determines that Rachel is not member of any groupthat Joe is a member of, an operation 506 shows a generic user profileof Joe. However, if Rachel is a member of a group such as the PTA groupthat Joe is also a member, an operation 508 fetches Joe's user recordfrom the PTA group table. For example, the Joe's record from the PTAgroup table may include values of the fields child name, child schoolyear, and child sport.

An operation 508 determines if Joe has specified any field overrides.For example, Joe may have specified that the value of the child name asprovided in the PTA group table is displayed to members of the PTA groupinstead of a child name value given in the generic profile of Joe. Ifthere is such an override, an operation 512 replaces the value of theoverridden field with the value from the PTA group table. An operation514 merges the group field values with the profile field values and anoperation 516 displays such merged field values as part of the profilepresented to Rachel.

FIG. 6 illustrates an example system 600 that may be useful inimplementing the image rendition system disclosed herein. The examplehardware and operating environment of FIG. 6 for implementing thedescribed technology includes a computing device, such as ageneral-purpose computing device in the form of a computer 20, a mobiletelephone, a personal data assistant (PDA), a tablet, smart watch,gaming remote, or other type of computing device. In the implementationof FIG. 6, for example, the computer 20 includes a processing unit 21, asystem memory 22, and a system bus 23 that operatively couples varioussystem components including the system memory to the processing unit 21.There may be only one or there may be more than one processing unit 21,such that the processor of a computer 20 comprises a singlecentral-processing unit (CPU), or a plurality of processing units,commonly referred to as a parallel processing environment. The computer20 may be a conventional computer, a distributed computer, or any othertype of computer; the implementations are not so limited.

In the example implementation of the computing system 600, the computer20 also includes a EUP module 650 providing one or more functions of theEUP system disclosed herein. The system bus 23 may be any of severaltypes of bus structures including a memory bus or memory controller, aperipheral bus, a switched fabric, point-to-point connections, and alocal bus using any of a variety of bus architectures. The system memorymay also be referred to as simply the memory, and includes read-onlymemory (ROM) 24 and random access memory (RAM) 25. A basic input/outputsystem (BIOS) 26, containing the basic routines that help to transferinformation between elements within the computer 20, such as duringstart-up, is stored in ROM 24. The computer 20 further includes a harddisk drive 27 for reading from and writing to a hard disk, not shown, amagnetic disk drive 28 for reading from or writing to a removablemagnetic disk 29, and an optical disk drive 30 for reading from orwriting to a removable optical disk 31 such as a CD ROM, DVD, or otheroptical media. The computer 20 may be used to implement an EUP modulesuch as the EUP module 112 of FIG. 1.

Furthermore, instructions stored on the memory of the computer 20 may beused by an EUP system. Similarly, instructions stored on the memory ofthe computer 20 may also be used to implement one or more operations ofa EUP system disclosed herein.

The hard disk drive 27, magnetic disk drive 28, and optical disk drive30 are connected to the system bus 23 by a hard disk drive interface 32,a magnetic disk drive interface 33, and an optical disk drive interface34, respectively. The drives and their associated tangiblecomputer-readable media provide nonvolatile storage of computer-readableinstructions, data structures, program modules and other data for thecomputer 20. It should be appreciated by those skilled in the art thatany type of tangible computer-readable media may be used in the exampleoperating environment.

A number of program modules may be stored on the hard disk, magneticdisk 29, optical disk 31, ROM 24, or RAM 25, including an operatingsystem 35, one or more application programs 36, other program modules37, and program data 38. A user may generate reminders on the personalcomputer 20 through input devices such as a keyboard 40 and pointingdevice 42. Other input devices (not shown) may include a microphone(e.g., for voice input), a camera (e.g., for a natural user interface(NUI)), a joystick, a game pad, a satellite dish, a scanner, or thelike. These and other input devices are often connected to theprocessing unit 21 through a serial port interface 46 that is coupled tothe system bus, but may be connected by other interfaces, such as aparallel port, game port, or a universal serial bus (USB). A monitor 47or other type of display device is also connected to the system bus 23via an interface, such as a video adapter 48. In addition to themonitor, computers typically include other peripheral output devices(not shown), such as speakers and printers.

The computer 20 may operate in a networked environment using logicalconnections to one or more remote computers, such as remote computer 49.These logical connections are achieved by a communication device coupledto or a part of the computer 20; the implementations are not limited toa particular type of communications device. The remote computer 49 maybe another computer, a server, a router, a network PC, a client, a peerdevice or other common network node, and typically includes many or allof the elements described above relative to the computer 20. The logicalconnections depicted in FIG. 6 include a local-area network (LAN) 51 anda wide-area network (WAN) 52. Such networking environments arecommonplace in office networks, enterprise-wide computer networks,intranets and the Internet, which are all types of networks.

When used in a LAN-networking environment, the computer 20 is connectedto the local area network 51 through a network interface or adapter 53,which is one type of communications device. When used in aWAN-networking environment, the computer 20 typically includes a modem54, a network adapter, a type of communications device, or any othertype of communications device for establishing communications over thewide area network 52. The modem 54, which may be internal or external,is connected to the system bus 23 via the serial port interface 46. In anetworked environment, program engines depicted relative to the personalcomputer 20, or portions thereof, may be stored in the remote memorystorage device. It is appreciated that the network connections shown areexample and other means of communications devices for establishing acommunications link between the computers may be used.

In an example implementation, software or firmware instructions for theEUP system disclosed herein may be stored in system memory 22 and/orstorage devices 29 or 31 and processed by the processing unit 21. Userprofile data may be stored in system memory 22 and/or storage devices 29or 31 as persistent data-stores. An EUP module 650 communicativelyconnected with the processing unit 21 and the memory 22 may enable oneor more of the capabilities of the EUP system disclosed herein.

In contrast to tangible computer-readable storage media, intangiblecomputer-readable communication signals may embody computer readableinstructions, data structures, program modules or other data resident ina modulated data signal, such as a carrier wave or other signaltransport mechanism. The term “modulated data signal” means a signalthat has one or more of its characteristics set or changed in such amanner as to encode information in the signal. By way of example, andnot limitation, intangible communication signals include wired mediasuch as a wired network or direct-wired connection, and wireless mediasuch as acoustic, RF, infrared and other wireless media.

FIG. 7 illustrates another example system (labeled as a mobile device700) that may be useful in implementing the described technology. Themobile device 700 includes a processor 702, a memory 704, a display 706(e.g., a touchscreen display), and other interfaces 708 (e.g., akeyboard). The memory 704 generally includes both volatile memory (e.g.,RAM) and non-volatile memory (e.g., flash memory). An operating system710, such as the Microsoft Windows® Phone operating system, resides inthe memory 704 and is executed by the processor 702, although it shouldbe understood that other operating systems may be employed.

One or more application programs 712 are loaded in the memory 704 andexecuted on the operating system 710 by the processor 702. Examples ofapplications 712 include without limitation email programs, schedulingprograms, personal information managers, Internet browsing programs,multimedia player applications, etc. A notification manager 714 is alsoloaded in the memory 704 and is executed by the processor 702 to presentnotifications to the user. For example, when a promotion is triggeredand presented to the shopper, the notification manager 714 can cause themobile device 700 to beep or vibrate (via the vibration device 718) anddisplay the promotion on the display 706.

The mobile device 700 includes a power supply 716, which is powered byone or more batteries or other power sources and which provides power toother components of the mobile device 700. The power supply 716 may alsobe connected to an external power source that overrides or recharges thebuilt-in batteries or other power sources.

The mobile device 700 includes one or more communication transceivers730 to provide network connectivity (e.g., mobile phone network, Wi-Fi®,BlueTooth®, etc.). The mobile device 700 also includes various othercomponents, such as a positioning system 720 (e.g., a global positioningsatellite transceiver), one or more accelerometers 722, one or morecameras 724, an audio interface 726 (e.g., a microphone, an audioamplifier and speaker and/or audio jack), and additional storage 728.Other configurations may also be employed.

In an example implementation, a mobile operating system, variousapplications, and other modules and services may be embodied byinstructions stored in memory 704 and/or storage devices 728 andprocessed by the processing unit 702. User preferences, service options,and other data may be stored in memory 704 and/or storage devices 728 aspersistent datastores. An EUP module 750 communicatively connected withthe processor 702 and the memory 704 may enable one or more of thecapabilities of the personalized user experience delivery systemdisclosed herein.

The EUP system disclosed herein provides solution to a technologicalproblem necessitated by user's desire to participate in a large numberof groups and to have selected and customized profiles for the differentgroups. Specifically, the EUP system disclosed herein provides anunconventional technical solution to this technological problem byallowing group administrators to create group specific fields for theusers participating in the group and the user's desire to overridedisplaying of certain fields in their profile with other fields asappropriate for a specific group.

A method for providing extendible user profiles includes receiving arequest from a group administrator to create a new group for a group ofusers of an application, providing a group formation user interface tothe group administrator, wherein the group formation user interfaceallows the group administrator to add group specific fields, creating agroup table including the group specific fields, and linking the grouptable to user profile tables of the group of users. In oneimplementation, the method further includes presenting a group join userinterface to a user joining the group, wherein the group join userinterface presents the group specific fields. In an alternativeimplementation, the method further includes receiving values of one ormore of the group specific fields from the user joining the group anddisplaying the values of the group specific fields to other members ofthe group.

In one implementation of the method, at least one of the group specificfield overrides a field in the user profile table. Alternatively, theuser profile table includes one or more group joined fields for the oneof more groups joined by a user and the method further comprises addingthe group to the group joined fields. Yet alternatively, the methodfurther includes linking the group table to the user profile table usingbased on the group join field. In one implementation, a group specificfield is shared between at least two or more groups. In anotherimplementation, one or more of the group specific fields are exposed toone or more other groups as specified by the user. Alternatively, one ormore of the group specific fields are exposed to one or more othergroups as specified by the group administrator.

A physical article of manufacture including one or more tangiblecomputer-readable storage media, encoding computer-executableinstructions for executing on a computer system a computer process,wherein the computer process includes receiving a request from a groupadministrator to create a new group for a group of users of a socialnetworking application, providing a group formation user interface tothe group administrator, wherein the group formation user interfaceallows the group administrator to add group specific fields, creating agroup table including the group specific fields, linking the group tableto user profile tables of the group of users, and presenting a groupjoin user interface to a user joining the group, wherein the group joinuser interface presents the group specific fields.

In one implementation, the computer-executable instructions furtherincludes receiving values of one or more of the group specific fieldsfrom the user joining the group. In another implementation, thecomputer-executable instructions further includes displaying the valuesof the group specific fields to other members of the group. In yetanother implementation, at least one of the group specific fieldoverrides a field in the user profile table. Alternatively, the userprofile table includes a group joined field including listing of one ofmore groups joined by a user and the method further comprises adding thegroup to the group joined field. Yet alternatively, thecomputer-executable instructions further includes linking the grouptable to the user profile table using based on the group join field.Alternatively, one or more of the group specific fields are exposed toone or more other groups as specified by at least one of the user andthe group administrator.

A system for providing extendible user profiles includes a memory; oneor more processor units; an extendible user profiles (EUP) module storedin the memory and executable by the one or more processor units, the EUPmodule configured to provide a group formation user interface to thegroup administrator, wherein the group formation user interface allowsthe group administrator to add group specific fields for a group ofusers of a social networking application and receive a plurality ofgroup specific fields from the group administrator; and a user profilemanager application stored in the memory and executable by the one ormore processor units, the user profile manager application configured tocreate a group table including the group specific fields and link thegroup table to a user profile table.

In one implementation, the EUP module is further configured to present agroup join user interface to a user joining the group, wherein the groupjoin user interface presents the group specific fields. Alternatively,the user profile manager application is further configured to add one ormore groups to the group joined fields of the user profile table. Yetalternatively, at least one of the group specific field overrides afield in the user profile table.

The above specification, examples, and data provide a completedescription of the structure and use of exemplary embodiments of theinvention. Since many implementations of the invention can be madewithout departing from the spirit and scope of the invention, theinvention resides in the claims hereinafter appended. Furthermore,structural features of the different embodiments may be combined in yetanother implementation without departing from the recited claims.

What is claimed is:
 1. A method of providing extendible user profiles,comprising: receiving a request from a group administrator to create anew group for a group of users of an application; providing a groupformation user interface to the group administrator, wherein the groupformation user interface allows the group administrator to add groupspecific fields; creating a group table including the group specificfields; and linking the group table to user profile tables of the groupof users.
 2. The method of claim 1, further comprising presenting agroup join user interface to a user joining the group, wherein the groupjoin user interface presents the group specific fields.
 3. The method ofclaim 2, further comprising: receiving values of one or more of thegroup specific fields from the user joining the group; and displayingthe values of the group specific fields to other members of the group.4. The method of claim 1, wherein at least one of the group specificfield overrides a field in the user profile table.
 5. The method ofclaim 1, wherein the user profile table includes one or more groupjoined fields for the one of more groups joined by a user and the methodfurther comprises adding the group to the group joined fields.
 6. Themethod of claim 5, further comprising linking the group table to theuser profile table using based on the group join field.
 7. The method ofclaim 1, wherein a group specific field is shared between at least twoor more groups.
 8. The method of claim 1, wherein one or more of thegroup specific fields are exposed to one or more other groups asspecified by the user.
 9. The method of claim 1, wherein one or more ofthe group specific fields are exposed to one or more other groups asspecified by the group administrator.
 10. A physical article ofmanufacture including one or more tangible computer-readable storagemedia, encoding computer-executable instructions for executing on acomputer system a computer process, the computer process comprising:receiving a request from a group administrator to create a new group fora group of users of a social networking application; providing a groupformation user interface to the group administrator, wherein the groupformation user interface allows the group administrator to add groupspecific fields; creating a group table including the group specificfields; linking the group table to user profile tables of the group ofusers; and presenting a group join user interface to a user joining thegroup, wherein the group join user interface presents the group specificfields.
 11. The physical article of manufacture of claim 10, wherein thecomputer-executable instructions further comprising receiving values ofone or more of the group specific fields from the user joining thegroup.
 12. The physical article of manufacture of claim 11, wherein thecomputer executable instructions further comprising displaying thevalues of the group specific fields to other members of the group. 13.The physical article of manufacture of claim 10, wherein at least one ofthe group specific field overrides a field in the user profile table.14. The physical article of manufacture of claim 10, wherein the userprofile table includes a group joined field including listing of one ofmore groups joined by a user and the method further comprises adding thegroup to the group joined field.
 15. The physical article of manufactureof claim 14, further comprising linking the group table to the userprofile table using based on the group join field.
 16. The physicalarticle of manufacture of claim 10, wherein one or more of the groupspecific fields are exposed to one or more other groups as specified byat least one of the user and the group administrator.
 17. A system forproviding extendible user profiles, comprising: memory; one or moreprocessor units; an extendible user profiles (EUP) module stored in thememory and executable by the one or more processor units, the EUP moduleconfigured to: provide a group formation user interface to the groupadministrator, wherein the group formation user interface allows thegroup administrator to add group specific fields for a group of users ofa social networking application, and receive a plurality of groupspecific fields from the group administrator; and a user profile managerapplication stored in the memory and executable by the one or moreprocessor units, the user profile manager application configured to:create a group table including the group specific fields, and link thegroup table to a user profile table.
 18. The system of claim 17, whereinthe EUP module is further configured to present a group join userinterface to a user joining the group, wherein the group join userinterface presents the group specific fields.
 19. The system of claim18, wherein the user profile manager application is further configuredto add one or more groups to the group joined fields of the user profiletable.
 20. The system of claim 17, at least one of the group specificfield overrides a field in the user profile table.